﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ERPStore.QuoteCart.Models
{
	/// <summary>
	/// Détail du panier
	/// </summary>
	[Serializable]
	public class QuoteCartItem
	{
		public QuoteCartItem()
		{
			CreationDate = DateTime.Now;
		}

		/// <summary>
		/// Identifiant interne de la ligne
		/// </summary>
		/// <value>The id.</value>
		public int Id { get; set; }
		/// <summary>
		/// Le produit selectionné
		/// </summary>
		/// <value>The product.</value>
		public ERPStore.Models.Product Product { get; set; }
		/// <summary>
		/// La quantité
		/// </summary>
		/// <value>The quantity.</value>
		public int Quantity { get; set; }

		/// <summary>
		/// Packaging
		/// </summary>
		/// <value>The packaging.</value>
		public int Packaging { get; set; }

		/// <summary>
		/// Raison de la remise via un coupon
		/// </summary>
		/// <value>The coupon reason.</value>
		public string CouponReason { get; set; }

		/// <summary>
		/// Informations sur le stock
		/// </summary>
		/// <value>The product stock info.</value>
		public ERPStore.Models.ProductStockInfo ProductStockInfo { get; set; }

		/// <summary>
		/// Date de création de la ligne
		/// </summary>
		/// <value>The creation date.</value>
		public DateTime CreationDate { get; set; }

		/// <summary>
		/// Date de la dernière mise à jour de la ligne
		/// </summary>
		/// <value>The last update.</value>
		public DateTime LastUpdate { get; set; }

		/// <summary>
		/// Nom de l'offre en cours permettant l'ajout au panier
		/// </summary>
		public string OfferName { get; set; }

		/// <summary>
		/// Identifiant permettant d'indiquer l'etat du stock au moment du premier ajout au panier
		/// </summary>
		public int? InventoryTimeStateId { get; set; }

		/// <summary>
		/// Identification du bouton d'ajout au panier
		/// </summary>
		public string AddFrom { get; set; }
	}
}
